package com.atguigu.java;

import org.junit.Test;

import java.util.List;

/**
 * @author yihu
 * @create 2021-03-08 11:36
 * @email:1057202547@qq.com
 * @dec: 如何自定义泛型结构：泛型类、泛型接口；泛型方法。1. 关于自定义泛型类、泛型接口：
 */
public class GenericTest1 {

    @Test
    public  void test(){
        //如果定义了泛型类，实例化没有指明类的泛型，则认为此泛型类型为Object类型
        //要求：如果大家定义了类是带泛型的，建议在实例化时要指明类的泛型。
        Order order = new Order();
        order.setOrderT(123);
        order.setOrderT("ABC");

        Order<String> order1 = new Order<String>("orderAA",1001,"order:AA");

        order1.setOrderT("AA-hello");

    }
    @Test
    public void test2(){
        SubOrder sub1 = new SubOrder();
        //由于子类在继承带泛型的父类时，指明了泛型类型。则实例化子类对象时，不再需要指明泛型。
        sub1.setOrderT(1122);

        //子类也定义了泛型类
        SubOrder1<Integer> sub2 = new SubOrder1<Integer>("orderAA",1001,2021);
        sub2.setOrderid(2022);

    }

    //测试泛型方法
    @Test
    public  void test4(){
        Order<String> order = new Order<String>();
        Integer[] arr = new Integer[]{1,2,3,4};
        List<Integer> integers = order.copyFromArrayToList(arr);
    }
}


